package com.jishuo.pzk.service;

import com.google.gson.Gson;
import com.jishuo.base.config.PzkConfig;
import com.jishuo.pzk.bean.base.VouFieldVO;
import com.jishuo.pzk.bean.base.VoucherDetailVO;
import com.jishuo.pzk.bean.base.VoucherVO;
import com.jishuo.pzk.bean.bill.ChargeBillVO;
import com.jishuo.pzk.bean.bill.ChargeBillDetail;
import com.jishuo.pzk.util.IdWorker;
import com.jishuo.pzk.util.ImageUtils;
import com.jishuo.pzk.util.NumberToCn;
import com.jishuo.pzk.util.VoucherUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.awt.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 缴款书
 */
@Service
public class ChargeBillService {
    private static final String vocde = PzkConfig.Vocode_ChargeBill;
    private static final int busitype = PzkConfig.Pztype_ChargeBill;//凭证类型

    @Resource
    private VoucherService voucherService;

    @Resource
    private VoucherUtil voucherUtil;

    /**
     * 存储凭证数据
     *
     * @param data 报文
     * @return
     */
    public int savePzk(String data) {
        ChargeBillVO chargeBillVO = new Gson().fromJson(data, ChargeBillVO.class);
        VoucherVO voucher = voucherUtil.getVoucher(busitype, "0", vocde, chargeBillVO.getBillNum(), "0", "2", chargeBillVO.getCantonId(), chargeBillVO.getBankId(), "0", chargeBillVO.getBankStation(), chargeBillVO.getPayBankDt(), new Gson().toJson(chargeBillVO));
        return voucherService.saveVoucher(voucher);
    }

    /**
     * 获得凭证字段明细
     *
     * @param list        字段定义
     * @param VO_SN
     * @param ORDERBILLSN 票号
     * @param data        报文
     * @return
     */
    public static List<VoucherDetailVO> getDetail(List<VouFieldVO> list, VoucherVO vo) {
        ChargeBillVO chargeBillVO = new Gson().fromJson(vo.getVoucher(), ChargeBillVO.class);
        List<VoucherDetailVO> listDe = new ArrayList<>();

        for (VouFieldVO vouFieldVO : list) {
            int x;
            int y;
            String pos = "";
            String pos1 = "";

            if ("left".equals(vouFieldVO.getHalign()) || vouFieldVO.getHalign() == null) {
                pos = vouFieldVO.getFieldPosLeft();

            } else if ("right".equals(vouFieldVO.getHalign())) {
                pos = vouFieldVO.getFieldPosRight();

            } else if ("center".equals(vouFieldVO.getHalign())) {
                pos = vouFieldVO.getFieldPosLeft();
                pos1 = vouFieldVO.getFieldPosRight();
            }

            if (vouFieldVO.getField() != null) {
                if (vouFieldVO.getField().trim().equals("fillday")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID

                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    //voucherDetailVO.setYY(0);
                    voucherDetailVO.setField("fillday");
                    voucherDetailVO.setFieldType("String");
                    String fillday = chargeBillVO.getFileDate().substring(8, 10);
                    voucherDetailVO.setFieldValue(fillday);
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("fillyear")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID

                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);

                    voucherDetailVO.setField("fillyear");
                    voucherDetailVO.setFieldType("String");
                    String fillyear = chargeBillVO.getFileDate().substring(0, 4);
                    voucherDetailVO.setFieldValue(fillyear);
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("fillmonth")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID

                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);


                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);

                    voucherDetailVO.setField("fillmonth");
                    voucherDetailVO.setFieldType("String");
                    String fillmonth = chargeBillVO.getFileDate().substring(5, 7);
                    voucherDetailVO.setFieldValue(fillmonth);
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }

                if (vouFieldVO.getField().trim().equals("hallcode")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID

                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);

                    voucherDetailVO.setField("hallcode");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getHallId());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("billnum")) {

                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);

                    voucherDetailVO.setField("billnum");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getBillNum());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("agencycode")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("agencycode");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getUnitCode());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("agencyname")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("agencyname");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getUnitName());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("payer")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);
                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("payer");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getPayer());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("payeraccount")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("payeraccount");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getPayerAccount());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("payerbank")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("payerbank");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getPayerBank());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("bankaccountname")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);

                    voucherDetailVO.setField("bankaccountname");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getAccountName());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("bankaccountcode")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("bankaccountcode");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getAccountCode());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("bankname")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("bankname");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getBankName());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }

                if (vouFieldVO.getField().trim().equals("itemcode")) {

                    List<ChargeBillDetail> listDt = chargeBillVO.getChargeBillDetail();

                    for (int i = 0; i < listDt.size(); i++) {
                        VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                        voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                        voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                        voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                        ChargeBillDetail sdt = listDt.get(i);

                        String[] posId = pos.split("\\|");
                        x = Integer.parseInt(posId[i].split(",")[0]);
                        y = Integer.parseInt(posId[i].split(",")[1]);

                        Color color = Color.BLACK;
                        String cc = ImageUtils.Color2String(color);

                        voucherDetailVO.setAlpha(1); // 透明度
                        voucherDetailVO.setFontcolor(cc); // 延时
                        voucherDetailVO.setFontname("宋体");

                        voucherDetailVO.setFontsize(40);
                        voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                        voucherDetailVO.setX(x);
                        //voucherDetailVO.setXX(0);
                        voucherDetailVO.setY(y);

                        voucherDetailVO.setField("itemcode" + i);
                        voucherDetailVO.setFieldType("String");
                        voucherDetailVO.setFieldValue(sdt.getItemCode());
                        voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                        voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                        listDe.add(voucherDetailVO);
                    }
                }

                if (vouFieldVO.getField().trim().equals("itemname")) {

                    List<ChargeBillDetail> listDt = chargeBillVO.getChargeBillDetail();

                    for (int i = 0; i < listDt.size(); i++) {
                        VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                        voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                        voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                        voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                        ChargeBillDetail sdt = listDt.get(i);
                        String[] posId = pos.split("\\|");
                        x = Integer.parseInt(posId[i].split(",")[0]);
                        y = Integer.parseInt(posId[i].split(",")[1]);

                        Color color = Color.BLACK;
                        String cc = ImageUtils.Color2String(color);

                        voucherDetailVO.setAlpha(1); // 透明度
                        voucherDetailVO.setFontcolor(cc); // 延时
                        voucherDetailVO.setFontname("宋体");

                        voucherDetailVO.setFontsize(40);
                        voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                        voucherDetailVO.setX(x);
                        voucherDetailVO.setY(y);

                        voucherDetailVO.setField("itemname" + i);
                        voucherDetailVO.setFieldType("String");
                        voucherDetailVO.setFieldValue(sdt.getItemName());
                        voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                        voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                        listDe.add(voucherDetailVO);
                    }
                }

                if (vouFieldVO.getField().trim().equals("amount")) {

                    List<ChargeBillDetail> listDt = chargeBillVO.getChargeBillDetail();

                    for (int j = 0; j < listDt.size(); j++) {
                        VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                        voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                        voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                        voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                        ChargeBillDetail sdt = listDt.get(j);

                        String[] posId = pos.split("\\|");
                        String[] posId1 = pos1.split("\\|");
                        int xx = Integer.parseInt(posId1[j].split(",")[0]);
                        x = Integer.parseInt(posId[j].split(",")[0]);
                        y = Integer.parseInt(posId[j].split(",")[1]);

                        Color color = Color.BLACK;
                        String cc = ImageUtils.Color2String(color);

                        voucherDetailVO.setAlpha(1); // 透明度
                        voucherDetailVO.setFontcolor(cc); // 延时
                        voucherDetailVO.setFontname("宋体");

                        voucherDetailVO.setFontsize(40);
                        voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                        voucherDetailVO.setX(x);
                        voucherDetailVO.setXx(xx);
                        //voucherDetailVO.setXX(0);
                        voucherDetailVO.setY(y);
                        voucherDetailVO.setField("amount" + j);
                        voucherDetailVO.setFieldType("String");
                        voucherDetailVO.setFieldValue(sdt.getAmount());
                        voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                        voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                        listDe.add(voucherDetailVO);
                    }
                }

                if (vouFieldVO.getField().trim().equals("itemstandard")) {

                    List<ChargeBillDetail> listDt = chargeBillVO.getChargeBillDetail();

                    for (int j = 0; j < listDt.size(); j++) {
                        VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                        voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                        voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                        voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                        ChargeBillDetail sdt = listDt.get(j);

                        int isLimit = sdt.getIsLimit();
                        String itemstandard;
                        if (isLimit == 1) {
                            itemstandard = sdt.getUpperLimit() + "~" + sdt.getLowerLimit();
                            String[] posId = pos.split("\\|");
                            String[] posId1 = pos1.split("\\|");
                            int xx = Integer.parseInt(posId1[j].split(",")[0]);
                            x = Integer.parseInt(posId[j].split(",")[0]);
                            y = Integer.parseInt(posId[j].split(",")[1]);

                            Color color = Color.BLACK;
                            String cc = ImageUtils.Color2String(color);

                            voucherDetailVO.setAlpha(1); // 透明度
                            voucherDetailVO.setFontcolor(cc); // 延时
                            voucherDetailVO.setFontname("宋体");

                            voucherDetailVO.setFontsize(40);
                            voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                            voucherDetailVO.setX(x);
                            voucherDetailVO.setXx(xx);
                            voucherDetailVO.setY(y);
                            voucherDetailVO.setField("itemstandard" + j);
                            voucherDetailVO.setFieldType("String");
                            voucherDetailVO.setFieldValue(itemstandard + " ");
                            voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                            voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                            listDe.add(voucherDetailVO);
                        }
                    }
                }

                if (vouFieldVO.getField().trim().equals("detailamt")) {

                    List<ChargeBillDetail> listDt = chargeBillVO.getChargeBillDetail();

                    for (int j = 0; j < listDt.size(); j++) {
                        VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                        voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                        voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                        voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                        ChargeBillDetail sdt = listDt.get(j);

                        String[] posId = pos.split("\\|");
                        x = Integer.parseInt(posId[j].split(",")[0]);
                        y = Integer.parseInt(posId[j].split(",")[1]);

                        Color color = Color.BLACK;
                        String cc = ImageUtils.Color2String(color);

                        voucherDetailVO.setAlpha(1); // 透明度
                        voucherDetailVO.setFontcolor(cc); // 延时
                        voucherDetailVO.setFontname("宋体");

                        voucherDetailVO.setFontsize(40);
                        voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                        voucherDetailVO.setX(x);
                        //voucherDetailVO.setXX(0);
                        voucherDetailVO.setY(y);
                        voucherDetailVO.setField("detailamt");
                        voucherDetailVO.setFieldType("String");
                        voucherDetailVO.setFieldValue(sdt.getOriginFund());
                        voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                        voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                        listDe.add(voucherDetailVO);
                    }
                }


                if (vouFieldVO.getField().trim().equals("bigamt")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);

                    BigDecimal numberOfMoney = new BigDecimal(chargeBillVO.getOriginFund());
                    String bigamt = NumberToCn.number2CNMontrayUnit(numberOfMoney);

                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("bigamt");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(bigamt);
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("amt")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);

                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("amt");
                    voucherDetailVO.setFieldType("String");
                    BigDecimal amt = new BigDecimal(chargeBillVO.getOriginFund());

                    voucherDetailVO.setFieldValue(amt.toString());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
                if (vouFieldVO.getField().trim().equals("vertifycode")) {
                    VoucherDetailVO voucherDetailVO = new VoucherDetailVO();
                    voucherDetailVO.setVoVdSn(IdWorker.getOrderCode(busitype)); // 主键
                    voucherDetailVO.setVoDeSn(vo.getVoSn()); // 主表ID
                    voucherDetailVO.setOrderbillsn(vo.getOrderbillsn()); // 订单ID
                    x = Integer.parseInt(pos.split(",")[0]);
                    y = Integer.parseInt(pos.split(",")[1]);
                    Color color = Color.BLACK;
                    String cc = ImageUtils.Color2String(color);

                    voucherDetailVO.setAlpha(1); // 透明度
                    voucherDetailVO.setFontcolor(cc); // 延时
                    voucherDetailVO.setFontname("宋体");

                    voucherDetailVO.setFontsize(40);
                    voucherDetailVO.setHalign(vouFieldVO.getHalign()); // 方向
                    voucherDetailVO.setX(x);
                    //voucherDetailVO.setXX(0);
                    voucherDetailVO.setY(y);
                    voucherDetailVO.setField("vertifycode");
                    voucherDetailVO.setFieldType("String");
                    voucherDetailVO.setFieldValue(chargeBillVO.getVerifyCode());
                    voucherDetailVO.setMaxlength(vouFieldVO.getMaxlength());
                    voucherDetailVO.setIsnewline(vouFieldVO.getIsnewline());
                    listDe.add(voucherDetailVO);
                }
            }
        }
        return listDe;
    }
}
